package com.gxa.ehome.aop;


import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;



@Component
//要实现一个切面编程，使用配置的方式
public class LogAspect2 {
       //前置通知
    @Before("Pointcut()")
    public void before(JoinPoint joinPoint){
        joinPoint.getArgs();//获取参数信息
        joinPoint.getTarget();
        System.out.println("这是一个前置通知，Before");
    }
    @AfterReturning("Pointcut()")
    public void afterReturning(){
        System.out.println("这是一个后置通知，AfterReturning");
    }
    //后置抛出通知
    @AfterThrowing("Pointcut()")
    public void afterThrowing(ProceedingJoinPoint proceedingJoinPoint){

        System.out.println("这是一个后置抛出通知，AfterThrowing");
    }
    @After("Pointcut()")
    public void after(){
        System.out.println("这是一个后置通知，after");
    }

}
